package com.mask.service;

import com.mask.entity.UserInfoEntity;
import com.mask.model.DTO.QueryFuzzyUserInfoDTO;

import java.util.List;

/**
 * @author hx
 * @date 2021/10/8 9:25 上午
 */

public interface UserInfoService {
    /**
     * 根据用户主键查找用户信息
     * @param id 用户id
     * @return 用户实体信息
     */
    UserInfoEntity selectByPrimaryKey(Long id);

    /**
     * 添加用户
     * @param userInfoEntity 用户实体类
     * @return 1成功,0失败
     */
    int insert(UserInfoEntity userInfoEntity);

    /**
     * 根据用户主键动态更新用户信息
     * @param userInfoEntity 用户实体类
     * @return 1成功,0失败
     */
    int updateByPrimaryKeySelective(UserInfoEntity userInfoEntity);

    /**
     * 根据用户名模糊查询用户列表
     * @param keyword 用户名关键词
     * @return 用户列表
     */
    List<QueryFuzzyUserInfoDTO> queryFuzzyUserInfoByUsername(String keyword);

    /**
     * 查询正常用户条目数
     * @return 条目数
     */
    int queryNormalUserCount();

    /**
     * 查询已冻结用户条目数
     * @return 条目数
     */
    int queryFrozenUserCount();

    /**
     * 查询已删除用户数
     * @return 条目数
     */
    int queryDeletedUserCount();

    /**
     * 根据用户状态查询用户列表
     * @param state 用户状态
     * @return 用户列表
     */
    List<UserInfoEntity> queryUserInfoByState(int state);

    /**
     * 根据性别和名字查询用户
     * @param username 用户名
     * @param sex 性别
     * @return 用户信息
     */
    UserInfoEntity queryUserInfoByUsernameAndSex(String username,int sex);

    /**
     * 根据多个id查询用户列表
     * @param userIds 用户id数组
     * @return 用户列表
     */
    List<UserInfoEntity> queryUserInfoByIds(int[] userIds);

}
